SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE  Procedure [dbo].[SP_TCMOVI_CAJA_I09]  
/*-------------------------------------------------------*/  
/*---Empresa              : OFISIS S.A.                --*/  
/*---Cliente              : CASSIMELLI                 --*/  
/*---Sistema              : Presupuesto                --*/  
/*---M©dulo               : Empresa                    --*/  
/*---Programa             : Grabaci©n Cabecera         --*/  
/*---                       Movimiento Caja(Ingresos)  --*/  
/*---Script               : tcmovi_c.sql               --*/  
/*---Nombre SP            : SP_TCMOVI_CAJA_I09         --*/  
/*---Desarrollado por     : Javier Flores A.           --*/  
/*---Fecha Creaci©n       : 08/07/1999                 --*/  
/*---Base Datos           : Microsoft Sql Server       --*/  
/*---Versi©n              : 7.0                        --*/  
/*---Invoca a SP          :                            --*/  
/*-------------------------------------------------------*/  
  
/*-------------------------------------------------------*/  
/*---Modificado 1 por     :  Carlos R Marquez E        --*/  
/*---Fecha Modificaci©n   :  29/05/2001                --*/   
/*---Detalle Modificaci©n :  Considerac Docs en Cartera--*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*---Comentarios                                       --*/  
/*---                                                  --*/  
/*---                                                  --*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*---Drop Proc SP_TCMOVI_CAJA_I09                      --*/  
/*---Grant all on SP_TCMOVI_CAJA_I09 to public         --*/   
/*---SP_TCMOVI_CAJA_I09_DENIS                                --*/  
/*-------------------------------------------------------*/  
 @ISCO_EMPR   TD_VC_002,   
 @ISCO_USUA_MODI  TD_VC_008_USUA,  
 @ISCO_CAJA   TD_VC_008,   
 @ISAA_CAJA   TD_VC_004,   
 @ISMM_CAJA   TD_VC_002,   
 @ISTI_MOVI   TD_VC_001,   
 @IDFE_OPER   TD_DT_001,   
 @ISCO_TIPO_OPER  TD_VC_003,   
 @ISCO_SUBR   TD_VC_003,   
 @INFA_TIPO_CAMB  TD_NU_015_006,   
 @INIM_MOVI   TD_NU_016_004,   
 @ISTI_ENTI   TD_VC_001,  
 @ISCO_ENTI   TD_VC_020,   
 @ISDE_NOMB_ORDE  TD_VC_100,   
 @ISDE_OBSE   TD_VC_100,   
 @ISTI_CORR_INEG  TD_VC_001,  
 @INUL_CORR_INGR  TD_IN_001,  
 @INUL_CORR_INEG  TD_IN_001,  
 @ISCO_ENTR_REND  TD_VC_004,  
 @ISCO_UNID_CNTB  TD_VC_003,  
 @IDFE_DIFE   TD_DT_001,   
 @ISNU_SOLI       TD_VC_010,  
 @ISST_ASTO_RESU TD_VC_001,    
 @ISCO_TIPO_DOCU TD_VC_003,  
 @ISNU_DOCU  TD_VC_020,  
 @ISNU_COMP_CAJA  TD_VC_008 OUTPUT
	As
Declare   
   @VNCO_NUEV_NUME TD_IN_001,   
   @VSCO_NUEV_CHAR TD_VC_008,  
   @VNNU_REGI      TD_IN_001,  
   @VSTI_SITU     TD_VC_003,   
   @VSST_AUXI_0004 TD_VC_001,    
   @VSST_AUXI_0002 TD_VC_001,  
   @VSST_INTE_BACH TD_VC_001,  
   @VSTI_OPNI_CARG TD_VC_003,  
   @VSTI_OPNI_ABON TD_VC_003  
  
  Begin Tran SP_TCMOVI_CAJA_I09  
  
  /** inserta en la cabecera de caja **/  
  
     Select @VSST_INTE_BACH = ST_INTE_BACH,  
 @VSTI_OPNI_CARG = CO_TIPO_OPEG, @VSTI_OPNI_ABON = CO_TIPO_OPER  
     From TMPARA_TESO Where CO_EMPR = @ISCO_EMPR  
  
  
     If Rtrim(@ISCO_ENTR_REND) = ''  
       Select @ISCO_ENTR_REND = NULL  
  
  
      /***---Obtiene Flags para el Tipo de Operacion  ---***/   
     Select  @VSST_AUXI_0004 = IsNull (ST_AUXI_0004,'N'),  
      @VSST_AUXI_0002 = ST_AUXI_0002  
     From    TTTIPO_OPER  
     Where   CO_EMPR = @ISCO_EMPR  
      And CO_TIPO_OPER = @ISCO_TIPO_OPER  
  
      /***---Seteo TI_SITU  en base al Flag del Tipo de Operacion  ---***/   
     Select @VSTI_SITU = ( SubString ('CAR', 1, PatIndex ('S',@VSST_AUXI_0004)*3) + SubString ('ACT', 1, PatIndex 
('N',@VSST_AUXI_0004)*3) )  
  
    /*Busco el ultimo correlativo usado para insertar el nro de comprobante*/   
    If @VSST_INTE_BACH = 'N' AND @ISST_ASTO_RESU = 'N' AND   
 @ISCO_TIPO_OPER != @VSTI_OPNI_CARG AND @ISCO_TIPO_OPER != @VSTI_OPNI_ABON  
      
 Exec SP_TTULTI_ASTO_Q01 @ISCO_EMPR, @ISCO_USUA_MODI, @ISCO_UNID_CNTB, @ISCO_TIPO_OPER, @IDFE_OPER, @ISNU_COMP_CAJA OUTPUT  
  
    Else  
 Begin  
      Select @VNNU_REGI = Count(*)   
      From TCMOVI_CAJA  
      Where CO_EMPR = @ISCO_EMPR   
       And CO_CAJA = @ISCO_CAJA  
       And AA_CAJA = @ISAA_CAJA  
       And MM_CAJA = @ISMM_CAJA  
       And TI_MOVI = 'I'    
       And NU_COMP_CAJA = @ISNU_COMP_CAJA  
  
      If @VNNU_REGI > 0 OR RTRIM(ISNULL(@ISNU_COMP_CAJA, '')) = ''  
    Begin           
           Select  @VSCO_NUEV_CHAR = ISNULL(MAX(NU_COMP_CAJA), '0')   
           From    TCMOVI_CAJA  
    Where   CO_EMPR = @ISCO_EMPR   
             And CO_CAJA = @ISCO_CAJA  
             And AA_CAJA = @ISAA_CAJA  
             And MM_CAJA = @ISMM_CAJA   
             And TI_MOVI = 'I'    
    And NU_COMP_CAJA LIKE '000%'  
  
           Select @VNCO_NUEV_NUME = Convert(Int , @VSCO_NUEV_CHAR) + 1  
  
           Select @VSCO_NUEV_CHAR = Convert(Char(8) , @VNCO_NUEV_NUME)  
  
           -- RELLENA DE CEROS HASTA 8 CARACTERES   
    Select @VSCO_NUEV_CHAR = ISNULL(REPLICATE('0',8- DATALENGTH(LTRIM(RTRIM(@VSCO_NUEV_CHAR)))),'') 
+LTRIM(RTRIM(@VSCO_NUEV_CHAR))  
  
           Select @ISNU_COMP_CAJA = @VSCO_NUEV_CHAR   
         End  
  
 End  
  
     Insert Into TCMOVI_CAJA(   
       CO_EMPR, CO_CAJA, AA_CAJA, MM_CAJA, TI_MOVI, NU_COMP_CAJA, FE_OPER,   
 CO_TIPO_OPER, CO_SUBR, FA_TIPO_CAMB, IM_MOVI,  TI_ENTI, CO_ENTI,  DE_ENTI,   
       DE_OBSE, ST_CONT, NU_PROC, TI_SITU, CO_ENTR_REND, CO_USUA_MODI, CO_UNID_CONC,   
 FE_DIFE, NU_SOLI, CO_TIPO_DOCU, NU_DOCU )  
     Values (   
      @ISCO_EMPR, @ISCO_CAJA, @ISAA_CAJA, @ISMM_CAJA, @ISTI_MOVI, @ISNU_COMP_CAJA,   
      @IDFE_OPER, @ISCO_TIPO_OPER, @ISCO_SUBR, @INFA_TIPO_CAMB, @INIM_MOVI, @ISTI_ENTI,   
      @ISCO_ENTI, @ISDE_NOMB_ORDE, @ISDE_OBSE, 'N', NULL, @VSTI_SITU, @ISCO_ENTR_REND,  
      @ISCO_USUA_MODI, @ISCO_UNID_CNTB, @IDFE_DIFE, @ISNU_SOLI, @ISCO_TIPO_DOCU, @ISNU_DOCU )  
  
    If @@error <> 0  
       Begin  
         Rollback tran  
    Return  
       End      
  
  
  
    /* Actualizando Estado y Fecha Liquidaci®n Solicitud Caja */  
      
     Update  TMSOLI_CABA   
 Set  TI_SITU = 'LIQ',   
  FE_LIQU = @IDFE_OPER,  
            CO_USUA_MODI = @ISCO_USUA_MODI,   
  FE_USUA_MODI = GETDATE()  
     Where   CO_EMPR = @ISCO_EMPR  
      And NU_SOLI = @ISNU_SOLI  
  
    If @@error <> 0  
       Begin  
         rollback tran  
    return  
       End    
  
  
   /* ----------- Actualiza los Correlativos ------------------ */  
    If @VSST_INTE_BACH = 'S' OR @ISST_ASTO_RESU = 'S' OR   
 @ISCO_TIPO_OPER = @VSTI_OPNI_CARG OR @ISCO_TIPO_OPER = @VSTI_OPNI_ABON  
      Begin      
  
   If @ISTI_CORR_INEG = 'N'  
             Begin  
    
  Select  @INUL_CORR_INGR = UL_CORR_INGR  
         From  TMSACA_MENS  
         WHERE  CO_EMPR = @ISCO_EMPR    
            AND CO_CAJA = @ISCO_CAJA  
            AND AA_CAJA = @ISAA_CAJA  
            AND MM_CAJA = @ISMM_CAJA   
  
  
         Update  TMSACA_MENS  
         Set UL_CORR_INGR = @INUL_CORR_INGR + 1, CO_USUA_MODI = @ISCO_USUA_MODI,   
                      FE_USUA_MODI = GETDATE()  
          Where   CO_EMPR = @ISCO_EMPR   
                And CO_CAJA = @ISCO_CAJA  
                And AA_CAJA = @ISAA_CAJA    
                And MM_CAJA = @ISMM_CAJA  
  
         If @@error <> 0  
                 Begin  
                   Rollback tran  
              Return  
                 End  
           
      End  
     Else  
             Begin  
    
  Select  @INUL_CORR_INEG = UL_CORR_INEG  
         From  TMSACA_MENS  
         WHERE  CO_EMPR = @ISCO_EMPR    
            AND CO_CAJA = @ISCO_CAJA  
            AND AA_CAJA = @ISAA_CAJA  
            AND MM_CAJA = @ISMM_CAJA   
  
  
         Update  TMSACA_MENS  
         Set UL_CORR_INEG = @INUL_CORR_INEG + 1, CO_USUA_MODI = @ISCO_USUA_MODI,   
        FE_USUA_MODI = GETDATE()  
          Where   CO_EMPR = @ISCO_EMPR   
                And CO_CAJA = @ISCO_CAJA  
                And AA_CAJA = @ISAA_CAJA   
                And MM_CAJA = @ISMM_CAJA  
  
         If @@error <> 0  
                 Begin  
                   Rollback tran  
              Return  
                 End  
           
        End  
  
 End  
  
 Commit Tran  
  
--SELECT @ISNU_COMP_CAJA  
RETURN  
  
/*--------------------------------- Fin ---------------------------------*/


GO
